<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>チェック結果一覧</title>
<link href="./css/flexigrid.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="./js/jquery.js"></script>
<script type="text/javascript" src="./js/flexigrid.js"></script>
<script type="text/javascript">
<!--
$(document).ready(function() 
{
    $('#zip_list').flexigrid();
}
);
-->
</script>
</head>
<body>
<h2>チェック結果一覧</h2>

<?php
require_once("MDB2.php");

// data source name 作成
$dsn = "mysqli://root:juliana@localhost/olio";
$options = array();

// 第2パラメータのオプションは指定せず(デフォルト)
$mdb2 =& MDB2::connect($dsn, $options);
if (PEAR::isError($mdb2)) {
    die($mdb2->getMessage());
}

// このドライバでトランザクションがサポートされているかをチェック
if (!$mdb2->supports('transactions')) {
    echo "このドライバではトランザクションがサポートされていません。";
    exit();
}

// トランザクション開始
$res = $mdb2->beginTransaction();
    // 注）入れ子のトランザクションも対応しているが、真の入れ子ではない。
    // 注）MDB2 では、トランザクションの分離レベルの設定には対応していない。

$error_condition = false;

// トランザクション処理中か、かつ
// セーブポイントがサポートされているか
if ($mdb2->inTransaction() && $mdb2->supports('savepoints')) {
    // セーブポイントによるトランザクション開始
    $savepoint = 'MYSAVEPOINT';
    $res = $mdb2->beginTransaction($savepoint);

    // セーブポイントによるトランザクション終了
    if ($error_condition) {
        $res = $mdb2->rollback($savepoint);
    } else {
        $res = $mdb2->commit($savepoint);
    }
}

// フェッチモードを設定
//  $mdb2->setFetchMode(MDB2_FETCHMODE_ORDERED);
$mdb2->setFetchMode(MDB2_FETCHMODE_ASSOC);
//  $mdb2->setFetchMode(MDB2_FETCHMODE_OBJECT);

// SQL文を作成
$sql = 'select tch.check_history_id, tch.created_at, mu.user_name, mu.user_name_kana, mci.check_item_name, mcr.check_result_name';
$sql.= ' from m_user mu, m_check_item mci, m_check_result mcr, t_check_history tch';
$sql.= ' where tch.user_id = mu.user_id';
$sql.= '   and tch.check_item_id = mci.check_item_id';
$sql.= '   and tch.check_result_id = mcr.check_result_id';
$sql.= ' order by tch.check_history_id asc';

// クエリ実行
$res =& $mdb2->query($sql);
if (PEAR::isError($res)) {
    die($res->getMessage());
}

// 実行したSQL文の結果を表示
print("<table id='zip_list' border=1>");
print('<thead>');
print('<tr>');
print('<th width="70">実施番号</th>');
print('<th width="150">実施日時</th>');
print('<th width="300">ユーザー</th>');
print('<th width="90">チェック項目</th>');
print('<th width="90">チェック結果</th>');
print('</tr>');
print('</thead>');
print('<tbody>');
while ($row = $res->fetchRow()) {
    print('<tr>');
    print('<td>'.$row['check_history_id'].'</td>');
    print('<td>'.$row['created_at'].'</td>');
    print('<td>'.$row['user_name'].'（'.$row['user_name_kana'].'）</td>');
    print('<td>'.$row['check_item_name'].'</td>');
    print('<td>'.$row['check_result_name'].'</td>');
    print('</tr>');
}
print('</tbody>');
print('</table>');

// トランザクション終了
if ($error_condition) {
    $res = $mdb2->rollback();
} else {
    $res = $mdb2->commit();
}

// 切断
$mdb2->disconnect();

?>
</body>
</html>
